﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using VideoClub.Business;

namespace VideoClub.UI.Reportes
{
    public partial class FrmSegundoReporte : Form
    {
        public FrmSegundoReporte()
        {
            InitializeComponent();
        }

        private void FrmSegundoReporte_Load(object sender, EventArgs e)
        {

            this.crystalReportViewer2.RefreshReport();
            cmbFormatos.DataSource = DatosComunesBO.ObtenerTodosLosFormatos();
            cmbFormatos.DisplayMember = "pDescripcion";
            cmbFormatos.ValueMember = "pIdFormato";

            cmbDirectores.DataSource = DatosComunesBO.ObtenerTodosLosDirectores();
            cmbDirectores.DisplayMember = "pApellido";
            cmbDirectores.ValueMember = "pIdDirector";
        }

        private void button1_Click(object sender, EventArgs e)
        {

            ReportDocument oRep = new ReportDocument();
            ParameterField primerParametro = new ParameterField();
            ParameterField segundoParametro = new ParameterField();
            ParameterFields parametros = new ParameterFields();
            ParameterDiscreteValue pdv1 = new ParameterDiscreteValue();
            ParameterDiscreteValue pdv2 = new ParameterDiscreteValue();

            parametros.Add(insertarParametroFormato(primerParametro, pdv1));
            parametros.Add(insertarParametroDirector(segundoParametro, pdv2));
            crystalReportViewer2.ParameterFieldInfo = parametros;
            oRep.Load(@"C:\Users\Heber\Desktop\Proyecto VideoClub\VideoClub\UI\Reportes\CrystalReport2.rpt");
            crystalReportViewer2.ReportSource = oRep;

        }

        private ParameterField insertarParametroDirector(ParameterField segundoParametro, ParameterDiscreteValue pdv2)
        {
            if (!cmbDirectores.Text.Equals("---"))
            {
                segundoParametro.Name = "@apellidoDirector";
                pdv2.Value = cmbDirectores.Text;
                segundoParametro.CurrentValues.Add(pdv2);
                
            }
            else
            {
                segundoParametro.Name = "@apellidoDirector";
                pdv2.Value = null;
                segundoParametro.CurrentValues.Add(pdv2);
                
            }
            return segundoParametro;
        }

        private ParameterField insertarParametroFormato(ParameterField primerParametro, ParameterDiscreteValue pdv1)
        {
            if (!cmbFormatos.Text.Equals("---"))
            {
                primerParametro.Name = "@descripcion";
                pdv1.Value = cmbFormatos.Text;
                primerParametro.CurrentValues.Add(pdv1);
            }
            else
            {
                primerParametro.Name = "@descripcion";
                pdv1.Value = null;
                primerParametro.CurrentValues.Add(pdv1);
            }
            return primerParametro;
        }
    }
}
